package cn.zyq.ykb.service.user;

import cn.zyq.ykb.beans.sys.SysAdmin;
import cn.zyq.ykb.beans.task.bo.UserCashAuditBo;
import cn.zyq.ykb.beans.user.User;
import cn.zyq.ykb.beans.user.UserBalance;
import cn.zyq.ykb.beans.user.UserCash;
import cn.zyq.ykb.beans.user.bo.UserBalanceBo;
import cn.zyq.ykb.system.common.PageParam;
import com.github.pagehelper.PageInfo;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * 用户-提现记录Service接口
 *
 * @author SystemAuth
 * @date 2023-05-23
 */
public interface UserCashService {
    /**
     * 查询用户-提现记录
     *
     * @param userCashID 用户-提现记录主键
     * @return 用户-提现记录
     */
    UserCash selectUserCashByUserCashID(Integer userCashID);

    /**
     * 查询用户-提现记录
     *
     * @param serviceID 用户-提现记录业务ID
     * @return 用户-提现记录
     */
    UserCash selectUserCashByServiceID(String serviceID);

    /**
     * 查询用户-提现记录列表
     *
     * @param pageParam
     * @return 用户-提现记录集合
     */
    PageInfo<UserBalance> selectUserCashList(PageParam pageParam);

    /**
     * 查询用户-提现记录列表
     *
     * @param param
     * @return 用户-提现记录集合
     */
    List<UserCash> selectUserCashList(UserCash param);

    /**
     * 新增用户-提现记录
     *
     * @param param 用户-提现记录
     * @return 结果
     */
    int insertUserCash(UserCash param);

    /**
     * 修改用户-提现记录
     *
     * @param param 用户-提现记录
     * @return 结果
     */
    int updateUserCash(UserCash param);

    /**
     * 批量删除用户-提现记录
     *
     * @param userCashIDs 需要删除的用户-提现记录主键集合
     * @return 结果
     */
    int deleteUserCashByUserCashIDs(Integer[] userCashIDs);

    /**
     * 删除用户-提现记录信息
     *
     * @param userCashID 用户-提现记录主键
     * @return 结果
     */
    int deleteUserCashByUserCashID(Integer userCashID);


    /**
     * 提现申请
     * @param bo
     * @param loginAdmin
     * @return
     */
    int audit(UserCashAuditBo bo, SysAdmin loginAdmin, HttpServletRequest request);


    int add(UserBalanceBo bo);

    int delete(Integer userBalanceID);

}
